package sg.edu.nus.iss.umpire;

import java.util.Arrays;
import java.util.Collection;

import sg.edu.nus.iss.umpire.service.competition.CompetitionHomePage;
import sg.edu.nus.iss.umpire.service.competition.CreateCompetitionPage;
import sg.edu.nus.iss.umpire.service.competition.DeleteCompetitionService;
import sg.edu.nus.iss.umpire.service.competition.EditCompetitionPage;
import sg.edu.nus.iss.umpire.service.competition.GetCompetitionService;
import sg.edu.nus.iss.umpire.service.competition.ListCompetitionService;
import sg.edu.nus.iss.umpire.service.competition.SaveCompetitionService;
import sg.edu.nus.iss.umpire.service.umpire.CreateUmpirePage;
import sg.edu.nus.iss.umpire.service.umpire.DeleteUmpireService;
import sg.edu.nus.iss.umpire.service.umpire.EditUmpirePage;
import sg.edu.nus.iss.umpire.service.umpire.ListUmpireService;
import sg.edu.nus.iss.umpire.service.umpire.SaveUmpireService;
import sg.edu.nus.iss.umpire.service.umpire.UmpireHomePage;
import sg.edu.nus.iss.umpire.service.workflow.WorkflowGetServiceController;
import sg.edu.nus.iss.umpire.service.workflow.WorkflowPostServiceController;
import sg.edu.nus.iss.umpire.service.workflow.WorkflowPageController;
import sg.edu.nus.iss.umpire.support.DispatchServlet;
import sg.edu.nus.iss.umpire.support.Service;

@SuppressWarnings("serial")
public class AppServlet extends DispatchServlet {

	@SuppressWarnings("unchecked")
	@Override
	protected Collection<? extends Class<? extends Service>> register() {
		return Arrays.asList(
				/* Umpires */
				UmpireHomePage.class,
				ListUmpireService.class, 
				CreateUmpirePage.class, 
				EditUmpirePage.class,
				SaveUmpireService.class, 
				DeleteUmpireService.class,
				/* Competition */
				CompetitionHomePage.class,
				ListCompetitionService.class,
				GetCompetitionService.class,
				CreateCompetitionPage.class,
				EditCompetitionPage.class,
				SaveCompetitionService.class, 
				DeleteCompetitionService.class,
				/* workflow */
				WorkflowPageController.class,
				WorkflowGetServiceController.class,
				WorkflowPostServiceController.class
			);
	}
}
